package com.hzjy.manage.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzjy.api.beans.HzjyProject;
import com.hzjy.api.beans.HzjyProjectAuthor;
import com.hzjy.api.beans.HzjyWorks;
import com.hzjy.common.annotation.Excel;
import com.hzjy.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
import java.util.List;

/**
 * 产品对象 hzjy_product
 *
 * @author hzjy
 * @date 2020-08-16
 */
public class HzjyProduct extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 产品ID */
    private Long productId;

    /** 产品名称 */
    @Excel(name = "产品名称")
    private String productName;

    /** 挂牌操作完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "挂牌操作完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date putawayTime;

    /** 挂牌类型【0:作品挂牌，1：项目挂牌】 */
    @Excel(name = "挂牌类型【0:作品挂牌，1：项目挂牌】")
    private Integer tradingType;

    /** 许可类型【0：专有许可，1：非专有许可】 */
    @Excel(name = "许可类型【0：专有许可，1：非专有许可】")
    private Integer permissionType;

    /** 授权类型【0：部分，1:全部】 */
    @Excel(name = "授权类型【0：部分，1:全部】")
    private Long empowerType;

    /** 作品封面图 */
    @Excel(name = "作品封面图")
    private String coverImage;

    /** 著作权证书图 */
    @Excel(name = "著作权证书图")
    private String authorCertificate;

    /** 证明类型【0：个人，1：企业】 */
    @Excel(name = "证明类型【0：个人，1：企业】")
    private Long proveType;

    /** 证明图片 */
    @Excel(name = "证明图片")
    private String proveImage;

    /** 挂牌协议ID */
    @Excel(name = "挂牌协议ID")
    private Integer agreementId;

    /** 摘牌要求-文本 */
    @Excel(name = "摘牌要求-文本")
    private String delistText;

    /** 摘牌要求-图片 */
    @Excel(name = "摘牌要求-图片")
    private String delistImage;

    /** 查看次数 */
    @Excel(name = "查看次数")
    private Integer seeNum;

    /** 审核状态【0：草稿，1：被驳回，2：待审核，3：初审通过，4：终审通过，5，签订完成，6：部分交易完成，7：全部交易完成】 */
    @Excel(name = "审核状态【0：草稿，1：被驳回，2：待审核，3：初审通过，4：终审通过，5，签订完成，6：部分交易完成，7：全部交易完成】")
    private Integer state;

    /** 上架状态【0：下架，1：上架】 */
    @Excel(name = "上架状态【0：下架，1：上架】")
    private Integer upState;

    /** 最后一条审核记录的ID */
    @Excel(name = "最后一条审核记录的ID")
    private Long auditRecordId;

    /** 所属用户ID */
    @Excel(name = "所属用户ID")
    private Integer userId;

    /** 约定的挂牌期限(天) */
    @Excel(name = "约定的挂牌期限(天)")
    private Integer term;

    /** 价格(分)(最终价格以双方商议为准，此价格仅展示) */
    @Excel(name = "价格(分)(最终价格以双方商议为准，此价格仅展示)")
    private Integer price;

    /** 价格类型【0:输入的价格，面议】 */
    @Excel(name = "价格类型【0:输入的价格，面议】")
    private Integer priceType;

    /** 样片图片 */
    @Excel(name = "样片图片")
    private String basicImage;

    //项目类型【0：转让，1 许可】转让无期限，许可有期限
    private Integer termType;

    //项目信息表
    private HzjyProject hzjyProject;

    //挂牌标的权力
    private String salability;

    //作品
    private HzjyWorks hzjyWorks;

    //著作权人
    private List<HzjyProjectAuthor> authorList;

    public void setProductId(Long productId)
    {
        this.productId = productId;
    }

    public Long getProductId()
    {
        return productId;
    }
    public void setProductName(String productName)
    {
        this.productName = productName;
    }

    public String getProductName()
    {
        return productName;
    }
    public void setPutawayTime(Date putawayTime)
    {
        this.putawayTime = putawayTime;
    }

    public Date getPutawayTime()
    {
        return putawayTime;
    }
    public void setTradingType(Integer tradingType)
    {
        this.tradingType = tradingType;
    }

    public Integer getTradingType()
    {
        return tradingType;
    }
    public void setpermissionType(Integer permissionType)
    {
        this.permissionType = permissionType;
    }

    public Integer getpermissionType()
    {
        return permissionType;
    }
    public void setEmpowerType(Long empowerType)
    {
        this.empowerType = empowerType;
    }

    public Long getEmpowerType()
    {
        return empowerType;
    }

    public String getCoverImage() {
        return coverImage;
    }

    public void setCoverImage(String coverImage) {
        this.coverImage = coverImage;
    }

    public void setAuthorCertificate(String authorCertificate)
    {
        this.authorCertificate = authorCertificate;
    }

    public String getAuthorCertificate()
    {
        return authorCertificate;
    }
    public void setProveType(Long proveType)
    {
        this.proveType = proveType;
    }

    public Long getProveType()
    {
        return proveType;
    }
    public void setProveImage(String proveImage)
    {
        this.proveImage = proveImage;
    }

    public String getProveImage()
    {
        return proveImage;
    }
    public void setAgreementId(Integer agreementId)
    {
        this.agreementId = agreementId;
    }

    public Integer getAgreementId()
    {
        return agreementId;
    }
    public void setDelistText(String delistText)
    {
        this.delistText = delistText;
    }

    public String getDelistText()
    {
        return delistText;
    }
    public void setDelistImage(String delistImage)
    {
        this.delistImage = delistImage;
    }

    public String getDelistImage()
    {
        return delistImage;
    }
    public void setSeeNum(Integer seeNum)
    {
        this.seeNum = seeNum;
    }

    public Integer getSeeNum()
    {
        return seeNum;
    }
    public void setState(Integer state)
    {
        this.state = state;
    }

    public Integer getState()
    {
        return state;
    }
    public void setUpState(Integer upState)
    {
        this.upState = upState;
    }

    public Integer getUpState()
    {
        return upState;
    }
    public void setAuditRecordId(Long auditRecordId)
    {
        this.auditRecordId = auditRecordId;
    }

    public Long getAuditRecordId()
    {
        return auditRecordId;
    }
    public void setUserId(Integer userId)
    {
        this.userId = userId;
    }

    public Integer getUserId()
    {
        return userId;
    }
    public void setTerm(Integer term)
    {
        this.term = term;
    }

    public Integer getTerm()
    {
        return term;
    }
    public void setPrice(Integer price)
    {
        this.price = price;
    }

    public Integer getPrice()
    {
        return price;
    }
    public void setPriceType(Integer priceType)
    {
        this.priceType = priceType;
    }

    public Integer getPriceType()
    {
        return priceType;
    }
    public void setBasicImage(String basicImage)
    {
        this.basicImage = basicImage;
    }

    public String getBasicImage()
    {
        return basicImage;
    }

    public Integer getTermType() {
        return termType;
    }

    public void setTermType(Integer termType) {
        this.termType = termType;
    }

    public HzjyProject getHzjyProject() {
        return hzjyProject;
    }

    public void setHzjyProject(HzjyProject hzjyProject) {
        this.hzjyProject = hzjyProject;
    }

    public String getSalability() {
        return salability;
    }

    public void setSalability(String salability) {
        this.salability = salability;
    }

    public HzjyWorks getHzjyWorks() {
        return hzjyWorks;
    }

    public void setHzjyWorks(HzjyWorks hzjyWorks) {
        this.hzjyWorks = hzjyWorks;
    }

    public List<HzjyProjectAuthor> getAuthorList() {
        return authorList;
    }

    public void setAuthorList(List<HzjyProjectAuthor> authorList) {
        this.authorList = authorList;
    }

    @Override
    public String toString() {
        return "HzjyProduct{" +
                "productId=" + productId +
                ", productName='" + productName + '\'' +
                ", putawayTime=" + putawayTime +
                ", tradingType=" + tradingType +
                ", permissionType=" + permissionType +
                ", empowerType=" + empowerType +
                ", coverImage='" + coverImage + '\'' +
                ", authorCertificate='" + authorCertificate + '\'' +
                ", proveType=" + proveType +
                ", proveImage='" + proveImage + '\'' +
                ", agreementId=" + agreementId +
                ", delistText='" + delistText + '\'' +
                ", delistImage='" + delistImage + '\'' +
                ", seeNum=" + seeNum +
                ", state=" + state +
                ", upState=" + upState +
                ", auditRecordId=" + auditRecordId +
                ", userId=" + userId +
                ", term=" + term +
                ", price=" + price +
                ", priceType=" + priceType +
                ", basicImage='" + basicImage + '\'' +
                ", termType=" + termType +
                ", hzjyProject=" + hzjyProject +
                ", salability='" + salability + '\'' +
                ", hzjyWorks=" + hzjyWorks +
                ", authorList=" + authorList +
                '}';
    }
}

